
package core;

/**
 *
 * @author Raed Shomali
 */
public class COINCOMOSubComponent extends COINCOMOUnit
{
    String language = "N/A";

    float laborRate = 0;

    long SLOC = 0;
    
    float adaptationAdjustmentFactor = 0 ;
    
    float adaptiveSLOC = 0 ;
    
    float eaf = 0 ;

    float breakage = 0;

    int sizingType = 0;

    float nomEffort = 0;

    float estEffort = 0;

    float prod = 0;

    float cost = 0;

    float instCost = 0;

    float staff = 0;

    float risk = 0;

    long changeMultiplier = 0;

    long internalLogicalFiles[] = { 0 , 0 , 0 } ;   // Low , Average , High

    long externalInterfaceFiles[] =  { 0 , 0 , 0 } ;  // Low , Average , High

    long externalInputs[] =  { 0 , 0 , 0 } ;  // Low , Average , High

    long externalOutputs[] =  { 0 , 0 , 0 } ;  // Low , Average , High

    long externalInquiries[] =  { 0 , 0 , 0 } ;  // Low , Average , High

    long initialSLOC = 0;

    float designModified = 0;

    float codeModified = 0;

    float integrationModified = 0;

    float softwareUnderstanding = 0;

    float assementAssimilation = 0;

    float unfamiliarity = 0;

    float automaticallyTranslated = 0;

    float autoTranslationProductivity = 0;

    int ratings[] = new int[ 18 ] ;
    int percent[] = new int[ 18 ] ;
    
    int cost_rating[] = new int[18];
    
   

    public float getAdaptationAdjustmentFactor()
    {
        return adaptationAdjustmentFactor;
    }

    public void setAdaptationAdjustmentFactor( float adaptationAdjustmentFactor )
    {
        this.adaptationAdjustmentFactor = adaptationAdjustmentFactor;
    }

    public long getAdaptiveSLOC()
    {
        return (long)( adaptiveSLOC * 1000 ) ;
    }
    
    public long getSLOC()
    {
        return SLOC;
    }

    @Override
    public long getFinalSLOC()
    {
        if( sizingType == 0 )
        {
            return SLOC ;
        }
        else if ( sizingType == 1 )
        {
            return 0 ;
        }
        else
        {
            return (long)( adaptiveSLOC * 1000 - SLOC ) ;
        }
    }

    public void setAdaptiveSLOC( float adaptiveSLOC )
    {
        this.adaptiveSLOC = adaptiveSLOC;
    }

    public void setSLOC( long SLOC )
    {
        this.SLOC = SLOC;
    }

    public float getAssementAssimilation()
    {
        return assementAssimilation;
    }

    public void setAssementAssimilation( float assementAssimilation )
    {
        this.assementAssimilation = assementAssimilation;
    }

    public float getAutoTranslationProductivity()
    {
        return autoTranslationProductivity;
    }

    public void setAutoTranslationProductivity( float autoTranslationProductivity )
    {
        this.autoTranslationProductivity = autoTranslationProductivity;
    }

    public float getAutomaticallyTranslated()
    {
        return automaticallyTranslated;
    }

    public void setAutomaticallyTranslated( float automaticallyTranslated )
    {
        this.automaticallyTranslated = automaticallyTranslated;
    }

    public float getBreakage()
    {
        return breakage;
    }

    public void setBreakage( float breakage )
    {
        this.breakage = breakage;
    }

    public long getChangeMultiplier()
    {
        return changeMultiplier;
    }

    public void setChangeMultiplier( long changeMultiplier )
    {
        this.changeMultiplier = changeMultiplier;
    }

    public float getCodeModified()
    {
        return codeModified;
    }

    public void setCodeModified( float codeModified )
    {
        this.codeModified = codeModified;
    }

    @Override
    public float getCost()
    {
        return cost;
    }

    public void setCost( float cost )
    {
        this.cost = cost;
    }

    public float getDesignModified()
    {
        return designModified;
    }

    public void setDesignModified( float designModified )
    {
        this.designModified = designModified;
    }

    public float getEstEffort()
    {
        return estEffort;
    }

    public void setEstEffort( float estEffort )
    {
        this.estEffort = estEffort;
    }

    public long getInitialSLOC()
    {
        return initialSLOC;
    }

    public void setInitialSLOC( long initialSLOC )
    {
        this.initialSLOC = initialSLOC;
    }

    public float getInstCost()
    {
        return instCost;
    }

    public void setInstCost( float instCost )
    {
        this.instCost = instCost;
    }

    public float getIntegrationModified()
    {
        return integrationModified;
    }

    public void setIntegrationModified( float integrationModified )
    {
        this.integrationModified = integrationModified;
    }

    public float getLaborRate()
    {
        return laborRate;
    }

    public void setLaborRate( float laborRate )
    {
        this.laborRate = laborRate;
    }

    public String getLanguage()
    {
        return language;
    }

    public void setLanguage( String language )
    {
        this.language = language;
    }

    public float getNomEffort()
    {
        return nomEffort;
    }

    public void setNomEffort( float nomEffort )
    {
        this.nomEffort = nomEffort;
    }

    public float getProd()
    {
        return prod;
    }

    public void setProd( float prod )
    {
        this.prod = prod;
    }

    public float getRisk()
    {
        return risk;
    }

    public void setRisk( float risk )
    {
        this.risk = risk;
    }

    public int getSizingType()
    {
        return sizingType;
    }

    public void setSizingType( int sizingType )
    {
        this.sizingType = sizingType;
    }

    public float getSoftwareUnderstanding()
    {
        return softwareUnderstanding;
    }

    public void setSoftwareUnderstanding( float softwareUnderstanding )
    {
        this.softwareUnderstanding = softwareUnderstanding;
    }

    @Override
    public float getStaff()
    {
        return staff;
    }

    public void setStaff( float staff )
    {
        this.staff = staff;
    }

    public float getUnfamiliarity()
    {
        return unfamiliarity;
    }

    public void setUnfamiliarity( float unfamiliarity )
    {
        this.unfamiliarity = unfamiliarity;
    }

    public int[] getPercent()
    {
        return percent;
    }

    public void setPercent( int[] percent )
    {
        this.percent = percent;
    }

    public int[] getRatings()
    {
        return ratings;
    }

    public void setRatings( int[] ratings )
    {
        this.ratings = ratings;
    }

    //Arnab
    public int[] getCostRatings()
    {
        return cost_rating;
    }

    public void setCostRatings( int[] ratings )
    {
        this.cost_rating = ratings;
    }
    
    public float getEaf()
    {
        return eaf;
    }

    public void setEaf( float eaf )
    {
        this.eaf = eaf;
    }

    public long[] getExternalInputs()
    {
        return externalInputs;
    }

    public void setExternalInputs( long[] externalInputs )
    {
        this.externalInputs = externalInputs;
    }

    public long[] getExternalInquiries()
    {
        return externalInquiries;
    }

    public void setExternalInquiries( long[] externalInquiries )
    {
        this.externalInquiries = externalInquiries;
    }

    public long[] getExternalInterfaceFiles()
    {
        return externalInterfaceFiles;
    }

    public void setExternalInterfaceFiles( long[] externalInterfaceFiles )
    {
        this.externalInterfaceFiles = externalInterfaceFiles;
    }

    public long[] getExternalOutputs()
    {
        return externalOutputs;
    }

    public void setExternalOutputs( long[] externalOutputs )
    {
        this.externalOutputs = externalOutputs;
    }

    public long[] getInternalLogicalFiles()
    {
        return internalLogicalFiles;
    }

    public void setInternalLogicalFiles( long[] internalLogicalFiles )
    {
        this.internalLogicalFiles = internalLogicalFiles;
    }
    
}
